AtCoder Beginner Contest 262 题解
全部标签视频讲解:TBDA.ThreeDoors题目大意有333个门和333把对应的钥匙。其中222把钥匙分别在222扇门后,111把在手上。打开门才能获得门后的钥匙,问能否打开所有的门。题解判断前两次开的门后,是否有钥匙即可。参考代码#includeusingnamespacestd;typedeflonglongll;intmain(){ intT,x,a[5],now; scanf("%d",&T); while(T--) { scanf("%d%d%d%d",&x,&a[1],&a[2],&a[3]); now=3^2^1^a[1]^a[2]^a[3]; if(a[now]==0||a[
题目来源887.鸡蛋掉落题目详情给你k枚相同的鸡蛋,并可以使用一栋从第1层到第n层共有n层楼的建筑。已知存在楼层f,满足 0,任何从高于f的楼层落下的鸡蛋都会碎,从f楼层或比它低的楼层落下的鸡蛋都不会破。每次操作,你可以取一枚没有碎的鸡蛋并把它从任一楼层x扔下(满足 1)。如果鸡蛋碎了,你就不能再次使用它。如果某枚鸡蛋扔下后没有摔碎,则可以在之后的操作中重复使用这枚鸡蛋。请你计算并返回要确定f确切的值的最小操作次数是多少?示例1:输入:k=1,n=2输出:2解释:鸡蛋从1楼掉落。如果它碎了,肯定能得出f=0。否则,鸡蛋从2楼掉落。如果它碎了,肯定能得出f=1。如果它没碎,那么肯定能得出f=2。
题目来源887.鸡蛋掉落题目详情给你k枚相同的鸡蛋,并可以使用一栋从第1层到第n层共有n层楼的建筑。已知存在楼层f,满足 0,任何从高于f的楼层落下的鸡蛋都会碎,从f楼层或比它低的楼层落下的鸡蛋都不会破。每次操作,你可以取一枚没有碎的鸡蛋并把它从任一楼层x扔下(满足 1)。如果鸡蛋碎了,你就不能再次使用它。如果某枚鸡蛋扔下后没有摔碎,则可以在之后的操作中重复使用这枚鸡蛋。请你计算并返回要确定f确切的值的最小操作次数是多少?示例1:输入:k=1,n=2输出:2解释:鸡蛋从1楼掉落。如果它碎了,肯定能得出f=0。否则,鸡蛋从2楼掉落。如果它碎了,肯定能得出f=1。如果它没碎,那么肯定能得出f=2。
本人这次侥幸省1,特做题解复习,哈哈哈…1.进制转换(5分):问题描述:直接计算2+2*9+2*9*9*9答案:14782.顺子日期(5分)这题有争议:主要在于0等不能开头:如20220121本人认为0不能作为开头(因为例题中20220123说明的顺子为123并不是012):所以顺子日期有:20220123202211232022123020221231答案:43.刷题统计(10分)解题思路:考虑a=1,b=1,n=1e18情况,不能一天一天计算,会超时5*a+2*b为一周的刷题量,先除法计算多少周,剩余的天数一直减就是了if(n参考代码:#includeusingnamespacestd;i
本人这次侥幸省1,特做题解复习,哈哈哈…1.进制转换(5分):问题描述:直接计算2+2*9+2*9*9*9答案:14782.顺子日期(5分)这题有争议:主要在于0等不能开头:如20220121本人认为0不能作为开头(因为例题中20220123说明的顺子为123并不是012):所以顺子日期有:20220123202211232022123020221231答案:43.刷题统计(10分)解题思路:考虑a=1,b=1,n=1e18情况,不能一天一天计算,会超时5*a+2*b为一周的刷题量,先除法计算多少周,剩余的天数一直减就是了if(n参考代码:#includeusingnamespacestd;i
A.Two0-1Sequences 大致翻译:两个长度为n和m的二进制序列a和b(题目保证n>=m)两个操作:op1: 改变a(2)为min(a(1),a(2)),并且移除a(1)op2: 改变a(2)为max(a(1),a(2)),并且移除a(1)每次操作后,原先的a(i)变成a(i+1),长度减少1,即前移。 a二进制序列能否通过这两个操作变成b二进制序列?解题思路:刚开始想的是判断a2后缀跟a1后缀是否相同,再判断,a1前面有没有1和0(因为有1和0,就表示op1和op2可以随意完成)。写的时候又陆陆续续发现需要几个特判,想a1长度为1等。于是就debug,慢慢发现只要前面有a2的第一
A.Two0-1Sequences 大致翻译:两个长度为n和m的二进制序列a和b(题目保证n>=m)两个操作:op1: 改变a(2)为min(a(1),a(2)),并且移除a(1)op2: 改变a(2)为max(a(1),a(2)),并且移除a(1)每次操作后,原先的a(i)变成a(i+1),长度减少1,即前移。 a二进制序列能否通过这两个操作变成b二进制序列?解题思路:刚开始想的是判断a2后缀跟a1后缀是否相同,再判断,a1前面有没有1和0(因为有1和0,就表示op1和op2可以随意完成)。写的时候又陆陆续续发现需要几个特判,想a1长度为1等。于是就debug,慢慢发现只要前面有a2的第一
详情请见:CSDN阿史大杯茶 https://blog.csdn.net/weixin_66946161/article/details/126093709题目意思本题主要意思就是切成一个个小块(小块的面积相同,但小块不相同),使小块之间互不相等,而且旋转之后相同,也算小块相同!例:ABCACDDB这两个是相同的!最后输出一共可以有多少种切法,使他们互不相等,然后输出切出的最小块(这里要注意如果面积相等,则输出a小的那一个)比如说:和,是要输出!思路:这道题主要就是取块以及旋转判断:取块:这个很简单,只需双重for循环,不停的枚举中的a和b,如果a或b不能被N或M整除,那么是不行的所以要co
详情请见:CSDN阿史大杯茶 https://blog.csdn.net/weixin_66946161/article/details/126093709题目意思本题主要意思就是切成一个个小块(小块的面积相同,但小块不相同),使小块之间互不相等,而且旋转之后相同,也算小块相同!例:ABCACDDB这两个是相同的!最后输出一共可以有多少种切法,使他们互不相等,然后输出切出的最小块(这里要注意如果面积相等,则输出a小的那一个)比如说:和,是要输出!思路:这道题主要就是取块以及旋转判断:取块:这个很简单,只需双重for循环,不停的枚举中的a和b,如果a或b不能被N或M整除,那么是不行的所以要co
题目来源343.整数拆分题目详情给定一个正整数 n ,将其拆分为k个正整数的和( k>=2 ),并使这些整数的乘积最大化。返回你可以获得的最大乘积 。示例1:输入:n=2输出:1解释:2=1+1,1×1=1。示例 2:输入:n=10输出:36解释:10=3+3+4,3× 3× 4=36。提示:2题解分析本题整数拆分的核心问题是如何定义状态方程的转移。状态方程的定义是比较简单的,dp[i]就表示i拆分后可以得到的最大乘积。对于dp[i]的状态转移来说,需要考虑以下两种情况:i可以拆分为j和i-j,i-j无需再次拆分,此时的乘积为:j*(i-j)i可以拆分为j和i-j,将i-j再次拆分,此时的乘积